On the Correctness of an Optimising Assembler for the Intel MCS-51 Microprocessor
نویسندگان
چکیده
We present a proof of correctness in Matita for an optimising assembler for the MCS-51 microcontroller. The efficient expansion of pseudoinstructions, namely jumps, into machine instructions is complex. We isolate the decision making over how jumps should be expanded from the expansion process itself as much as possible using ‘policies’, making the proof of correctness for the assembler more straightforward. Our proof strategy contains a tracking facility for ‘good addresses’ and only programs that use good addresses have their semantics preserved under assembly, as we observe that it is impossible for an assembler to preserve the semantics of every assembly program. Our strategy offers increased flexibility over the traditional approach to proving the correctness of assemblers, wherein addresses in assembly are kept opaque and immutable. In particular, we may experiment with allowing the benign manipulation of addresses.
منابع مشابه
Predicting Error Rate for Microprocessor-Based Digital Architectures through C.E.U. (Code Emulating Upsets) Injection
-This paper investigates an approach to study the effects of upsets on the operation of microprocessorbased digital architectures. The method is based on the injection of bitf lips, randomly in time and location by using the capabilities of typical application boards. Experimental results, obtained on programs running on two different digital boards, built around an 80C51 microcontroller and a ...
متن کاملVx86: x86 Assembler Simulated in C Powered by Automated Theorem Proving
Vx86 is the first static analyzer for sequential Intel x86 assembler code using automated deductive verification. It proves the correctness of assembler code against function contracts, which are expressed in terms of pre-, post-, and frame conditions using first-order predicates. Vx86 takes the annotated assembler code, translates it into C code simulating the processor, and then uses an exist...
متن کاملA Study on the Loop Behavior of Embedded Programs
Software executing on a microprocessor contributes to much of the overall power and performance of an embedded system. A general rule-of-thumb for the behavior of both desktop and embedded systems has been that most execution time is spent in a small fraction of the software. We studied the behavior of 16 embedded system programs from the Powerstone benchmarks, with a focus specifically on thos...
متن کاملSigned multiplication technique by means of unsigned multiply instruction
The present work aims at proposing an efficient technique for signed binary multiplication using unsigned, multiply instruction. Numerous examples are provided to show efficiency of the proposed approach in the context of practical software implementation. Performance of the technique is compared to the software emulated versions of classical methods, such as radix-2 Booth method, reversal of s...
متن کاملAgricultural Irrigation System Control and Data Communications for Real-time Variable Water Application
A multi-microprocessor based distributed control system manages spatially variable water and chemical application. The microprocessors are networked together using 3120 processors and PLT-20 transceivers in a master slave configuration. The control units consist of an 8051 I/O processor and a 3120 communications processor that communicate over a half mile 480VAC three phase power cable. The pow...
متن کامل